Serving form ads with a video

ABSTRACT

Serving form ads with videos is disclosed, including: receiving from a client device a request including a set of parameters associated with a video; and determining a form ad to be displayed with the video based at least in part on the set of parameters.

CROSS REFERENCE TO OTHER APPLICATIONS

This application is a continuation of co-pending U.S. patent applicationSer. No. 13/908,896, entitled SERVING FORM ADS WITH A VIDEO filed Jun.3, 2013 which is incorporated herein by reference for all purposes.

BACKGROUND OF THE INVENTION

Video websites are common and tend to attract many visitors. At awebpage of a certain video, the video is played in a video playerapplication. The user may control the playback of the video by selectingone or more playback related controls, such as play, pause, stop, andskip to a different portion of the video. Sometimes, ads are displayedon the same webpage as the video player. Typical ads that are displayedon the same webpage as a video player include banner ads or video-basedads.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the followingdetailed description and the accompanying drawings.

FIG. 1 is a diagram showing an embodiment for a system for serving formads with a video.

FIG. 2 is a flow diagram showing an embodiment of a process for creatinga form ad.

FIG. 3 is a flow diagram showing an embodiment of a process for servingform ads with a video.

FIG. 4 is a sequence diagram showing an example of serving form ads witha video.

FIG. 5 is a flow diagram showing an embodiment of a process for servingform ads with a video.

FIG. 6 is a flow diagram showing an embodiment of a process of servingform ads with a video.

FIG. 7 is a flow diagram showing an embodiment of a process for servingform ads with a video.

FIG. 8 is a flow diagram showing an embodiment of a process forcollecting user interaction events.

FIG. 9A is a diagram showing an example of a video playing in a videoplayer application.

FIG. 9B is a diagram showing an example of a form ad being displayedover a video in a video player application.

FIG. 10 is a flow diagram showing an embodiment of a process forcollecting user information using a form ad displayed with a video.

FIG. 11 is a flow diagram showing an example of a process for performingvalidation and verification on the received user information input intoa form ad displayed with a video.

FIG. 12 is a flow diagram showing an example of a process for performingvalidation and verification on the received user information input intoa form ad displayed with a video.

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as aprocess; an apparatus; a system; a composition of matter; a computerprogram product embodied on a computer readable storage medium; and/or aprocessor, such as a processor configured to execute instructions storedon and/or provided by a memory coupled to the processor. In thisspecification, these implementations, or any other form that theinvention may take, may be referred to as techniques. In general, theorder of the steps of disclosed processes may be altered within thescope of the invention. Unless stated otherwise, a component such as aprocessor or a memory described as being configured to perform a taskmay be implemented as a general component that is temporarily configuredto perform the task at a given time or a specific component that ismanufactured to perform the task. As used herein, the term ‘processor’refers to one or more devices, circuits, and/or processing coresconfigured to process data, such as computer program instructions.

A detailed description of one or more embodiments of the invention isprovided below along with accompanying figures that illustrate theprinciples of the invention. The invention is described in connectionwith such embodiments, but the invention is not limited to anyembodiment. The scope of the invention is limited only by the claims andthe invention encompasses numerous alternatives, modifications andequivalents. Numerous specific details are set forth in the followingdescription in order to provide a thorough understanding of theinvention. These details are provided for the purpose of example and theinvention may be practiced according to the claims without some or allof these specific details. For the purpose of clarity, technicalmaterial that is known in the technical fields related to the inventionhas not been described in detail so that the invention is notunnecessarily obscured.

Embodiments of serving form ads with videos are described herein. Invarious embodiments, a video selected by a user is to be played in avideo player application. The video player application may be embeddedin a webpage or a software application (e.g., configured to be used witha mobile platform). The video player application may be executing at aclient device. In various embodiments, the client device sends a requestincluding a set of parameters associated with the video to a server. Forexample, the parameters included in the set may include data associatedwith the user, data associated with the video, data associated with theclient device, data associated with the video player, data associatedwith the user interaction with the video, and/or data associated withthe geographic location of the user. In some embodiments, the requestincluding the set of parameters is sent to the server in response to acertain video playback event (e.g., the user pauses the playback of thevideo or the playback of the video completes). Based on the set ofparameters, a form ad is selected and sent to the client device, wherethe form ad is to be displayed with the video.

In various embodiments, “form ads” comprise cost per lead advertisementsdisplayed as forms at webpages and/or within applications, where userinformation may be submitted through one or more fields and/orselections of the form to potentially be stored as a lead. In variousembodiments, a form ad may be implemented as an application that enablesadvertisers to engage with consumer users (e.g., a displayed form adallows consumer users to interact with the form) and also enables thecollection/storage of information received from the consumer users. Aform ad may solicit for information such as one or more of the followingexamples: name, address, contact information (e.g., email and/or phonenumber), educational background, credit score, income level, whether theconsumer user has one or more types of insurance, and/or otherqualifying information and/or other personal information. Theinformation solicited by the form ad may be collected and used to, forexample, include the solicited user in a mailing list, include the userin a reward program, query the user, qualify the user for a service,redirect the user to an appropriate landing page and/or website, and/orinclude the user in a queue of users to be contacted by an advertiserassociated with the form ad.

In various embodiments, a “lead” refers to a verified set of userinformation. In some embodiments, user information that meets thecriteria required to classify the user information to be a lead includesone or both of the user information satisfying successful validation(e.g., validation of the format of the input information) and/orsatisfying successful verification (e.g., where the verification processis performed using at least a third party information verificationservice). In some embodiments, the user information that meets thecriteria required to classify the user information as a lead is storedas a lead. But the user information that does not meet the criteria isdiscarded and not stored. In some embodiments, a stored lead is comparedagainst sets of purchase criteria configured by one or more buyers. Alead that meets the purchase criteria configured by a particular buyermay be eligible to be sold to that buyer, whereas a lead that does notmeet the purchase criteria is not eligible to be sold to that buyer. Insome embodiments, a buyer may be billed for each stored lead (i.e., eachverified set of user information) that meets the buyer's configuredpurchase criteria, which is to say that the buyer is not billed for thesets of user information that are input but either not validated or notverified or the sets of user information that are both validated andverified but do not meet purchase criteria.

FIG. 1 is a diagram showing an embodiment for a system for serving formads with a video. In the example, system 100 includes client device 102,network 104, form ad server 106, content delivery network 108, video adserver 110, and video server 112. Network 104 includes high-speed datanetworks and/or telecommunications networks. Although form ad server106, content delivery network 108, and video ad server 110 are shown asseparate entities in the example, in some embodiments, the functionsassociated with form ad server 106, content delivery network 108, andvideo ad server 110 may be implemented on a single server.

Client device 102 is configured to communicate with form ad server 106,content delivery network 108, video ad server 110, and video server 112over network 104. While client device 102 is shown to be a laptopcomputer in the example, other examples of client device 102 include adesktop computer, a tablet device, a smartphone, a mobile device, and/orany other computing device. In various embodiments, a web browserapplication is installed at client device 102.

In some embodiments, an advertiser user (e.g., a user who wishes toplace an advertisement with a publisher) and/or a buyer user (e.g., auser who wishes to buy a lead received from a form ad) may use a clientdevice such as client device 102 to access a user interface of anapplication provided by form ad server 108 that enables the user tocreate, configure, customize, and store form ads to be displayed withsearch results. A buyer may or may not be related to the advertiserparty that runs an advertisement campaign. For example, the advertiserand/or buyer user may access such a user interface by accessing theappropriate uniform resource locator (URL) of the application providedby form ad server 106. In some embodiments, the user interface isconfigured to enable the advertiser and/or buyer user to perform one ormore of the following: create the appearance of a form ad, configure thepublishers (e.g., the type of online video platforms) at which thecreated form ad is to be displayed, configure one or more keywords to beassociated with the form ad, configure one or more categories to beassociated with the form ad, configure criteria required for the userinformation input at the form ad to be classified as a lead, configuretarget user demographics the form ad is intended for, configure thespecific videos and/or categories of videos that the form ad is intendedfor, configure the purchase criteria required for user information inputat the form ad to be classified as a lead, configure how much the buyeris willing to be charged for a lead associated with the form ad,configure the budget to be used for an ad campaign associated with theform ad, configure one or more goals (e.g., filters) for a desired lead(e.g., a goal may describe a desirable lead that the buyer is willing topay for), configure mappings between fields of the form ads andvariables used by another system used by the advertiser, and configurewhether a pixel is to be included in the form ad to track uses and/orperformance of the form ad. The form ads may then be stored, forexample, at content delivery network 108 and their respective metadatamay be stored at, for example video ad server 110. The form ads may beserved at one or more publishers (e.g., online video platforms). In someembodiments, the stored form ads may be displayed at a webpage of anonline video platform hosted by video server 112. In some embodiments,the stored form ads may be displayed with a mobile device optimizedsoftware application associated with an online video platform hosted byvideo server 112.

A user may use client device 102 to select a video provided by an onlinevideo platform supported by video server 112 that he or she wishes towatch. For example, the online video platform comprises a website thathosts videos uploaded and shared among users. The selected video isplayed back in a video player application associated with the onlinevideo platform. The user may select various selectable elementsassociated with the video player application to control the playback ofthe video. For example, selectable elements may include a play button, apause button, a stop button, and/or a control for skipping to variousportions of the video. When the playback of the video reaches a certainplayback event, the video player associated with client device 102 isconfigured to send a request for a form ad to video ad server 110. Invarious embodiments, the request includes a set of parameters associatedwith the viewing user, the video, the client device, and/or the videoplayer. The playback event that triggers the sending of the request maybe configurable to comprise any type of event related to the playback ofthe video. Examples of playback events include the completion of thevideo playback (i.e., the playback of the video reaches the end of thevideo) and a pause (e.g., that is initiated by the user or by anotherentity) in the playback of the video. In various embodiments, playbackevent(s) that are associated with a pause or another stopping point inthe video are selected to serve as triggers to send the request for aform ad so that a returned form ad may be displayed for the user whilethe user will more likely focus attention and time to complete the formad. The set of parameters may be collected by the video playerapplication executing at client device 102 and/or the web browserapplication executing at client device 102. For example, the parametersincluded in the set may include data associated with the user, dataassociated with the video, data associated with the client device, dataassociated with the video player, data associated with the userinteraction with the video, and/or data associated with the geographiclocation of the user. User interaction with the video may include userinteraction with one or more companion ads, banner ads, video ads, andoverlay ads displayed on the webpage and/or application associated withthe video. For example, user interaction associated with ads may includemuting the sounds associated with the ads, closing/dismissing the ads,skipping the ads, and/or replaying the ads.

In response to receiving a request for a form ad from a client devicesuch as client device 102, video ad server 110 is configured todetermine an appropriate form ad based on the set of parameters includedin the request and metadata associated with various form ads. In variousembodiments, video ad server 110 is configured to include a databasestoring metadata associated with various form ads. For example, themetadata associated with each form ad may include keywords associatedwith the form ad, categories associated with the form ad, sizedimensions (e.g., length and width) of the form ad, types of networksdevices associated with the form ad, target user demographics associatedwith the form ad, a popularity associated with the form ad, a timeassociated with when the form ad first became available, geographic dataassociated with the form ad (e.g., geographic data associated with theform ad may indicate which geographic areas the form ad is best suitedfor), client device agent compatibility data (e.g., client device agentcompatibility data may indicate which types of web browser applicationsand/or operation systems the form ad is capable of being displayed ad),and online video platforms associated with the form ad (e.g., websitesassociated with the form ad may comprise specific video websites and/ortypes of video websites at which the form ad may be displayed). In someembodiments, video ad server 110 is configured to determine theappropriate form ad for a request based on determining user intent basedon the set of parameters and determining a best matching form ad basedon the metadata associated with the form ads. In some embodiments, videoad server 110 is configured to determine the appropriate form ad for arequest based on categorizing the viewing user into a user demographicand determining a best matching form ad for that user demographic. Insome embodiments, video ad server 110 uses machine learning to predictthe most appropriate user demographic for a user. In some embodiments,video ad server 110 is configured to determine the appropriate form adfor a request by selecting a form ad that is currently popular. In someembodiments, after video ad server 110 determines the appropriate formad, video ad server 110 is configured to send data associated with theselected form ad directly to client device 102. In some instances, videoad server 110 may determine that no form ad is to be displayed with thevideo at all. For example, video ad server 110 may detect that the useris not interested in viewing/interacting with ads based on the collecteduser interaction so far that indicates the user has dismissed at leastsome of the other ads displayed in association with the video so far. Insome embodiments, after video ad server 110 determines the appropriateform ad, video ad server 110 is configured to send identifyinginformation associated with the selected form ad to client device 102 sothat client device 102 can use the identifying information to requestthe selected form ad from another server. For example, the identifyinginformation comprises an identifier associated with the form ad and/or auniform resource locator (URL) associated with identifying the locationof the form ad.

In some embodiments, client device 102 is configured to receiveidentifying information associated with a form ad selected by video adserver 110. Client device 102 is configured to send a request includingthe identifying information for the data associated with the form ad tocontent delivery network 108. In some embodiments, content deliverynetwork 108 is configured to store data associated with various formads, the metadata for some of which is stored at video ad server 110.Based on the received request from client device 102, content deliverynetwork 108 is configured to send the data (e.g., image, fields, and/orselections) associated with the form ad identified by the identifyinginformation included in the request.

Client device 102 is configured to display the form ad for which datawas returned from content delivery network 108 or video ad server 110.In various embodiments, the form ad is displayed in a manner thatoverlays at least a portion of the video or video player. In someembodiments, the form ad is displayed at a particular location (e.g., adunit) on the webpage or the application associated with the video thatdoes not overlay a portion of the video or video player. For example,the form ad will remain displayed until the video resumes (e.g., afterthe video was paused), the form ad is dismissed/closed by a userselection, and/or user information is input through the form ad. Whilethe form ad is displayed, the user may complete at least some of thefields and/or selections of the form ad with user information. Each formad may include a control (e.g., a submit button) that the user mayselect to submit the user information. The user information input intothe form ad may be sent by client device 102 to form ad server 106.

Form ad server 106 is configured to receive the user information inputinto a displayed form ad from a client device such as client device 102.In some embodiments, form ad server 106 is configured to determinewhether the user information input in the form ad meets the criteriarequired to classify the user information to be a lead (e.g., thecriteria may be those configured by the advertiser user that created theform ad or a buyer user that may potentially buy a lead that is receivedthrough the form ad). In some embodiments, such criteria may includevalidation of the format and/or type of user information that is inputinto each field of the form ad (e.g., for example, if Roman alphabeticalcharacters were input into a field associated with a phone number, thenthe input information would be deemed as invalid). In some embodiments,such criteria may also include verification of the user information todetect for fraudulent information (e.g., fraudulent information mayinclude an inputted email address that does not actually exist or aninputted name information that does not match the name of the owner ofthe inputted email address). In some embodiments, validation and/orverification of the user information may be performed while more userinformation is still being input by a user or performed after all userinformation has been completely input and submitted. In someembodiments, a form ad's configurable criteria required to classify theuser information to be a lead may include: what type of validation toperform; which events trigger the start of validation and/orverification; which type of verification to perform (e.g., which thirdparty verification is to be used); whether a timeout period is to be setfor waiting on the results of the verification process and if so, thelength of the timeout period; the number of times to prompt forresubmission of user information at one or more fields of the form ad(e.g., because user information from a previous submission is deemed tobe not validated and/or not verified) before sending a receipt ofacknowledgement despite not yet having received validated and/orverified user information.

In some embodiments, form ad server 106 is configured to performvalidation and/or verification of the user information input at the formad. In some embodiments, form ad server 106 is configured to send atleast some of the user information to be verified by a third partyverification server (not shown). Examples of verification servicesinclude eBureau® and TARGUSinfo®. In some embodiments, form ad server106 is configured to send user information (e.g., user information thathas already been successfully validated) to a third party verificationserver for the third party verification server to perform verificationby, for example, checking the user information (or portions thereof)against database(s) of verified consumer information (e.g., names, emailaddresses, and phone numbers that are known to exist and belong to realpeople). In some embodiments, once the third party verification serverdetermines whether the user information can be successfully verified,the third party verification server sends a verification result messageback to form ad server 106. For example, the verification result messagemay include whether the user information has been or has not beensuccessfully verified and the likelihood that the user associated withthe user information is going to make a transaction in one or moreverticals (e.g., categories of commerce).

In some embodiments, once form ad server 106 makes the determination ofwhether the user information meets the criteria required to classify theuser information as a lead, form ad server 106 stores the set of userinformation as a lead if the criteria are met and form ad server 106does not store the set of user information as a lead if the criteria arenot met. In some embodiments, stored leads are used to train the modelsused to select form ads. In some embodiments, form ad server 106 isconfigured to determine whether stored leads match one or more purchasecriteria configured by a buyer of leads. If the lead does not match aset of purchase criteria, then the stored lead may become discarded. Insome embodiments, form ad server 106 is configured to score each storedlead based on one or more attributes of the user information of thelead. In some embodiments, form ad server 106 is configured to bill abuyer periodically based on the number of stored leads that match thebuyer's configured purchase criteria during that period.

In some embodiments, once user information is input at a displayed formad at a webpage and/or application associated with a video, regardlessof whether the user information meets the validation and/or verificationcriteria, form ad server 106 is configured to pass the user informationto an advertiser server (not shown). In some embodiments, the advertiserserver is associated with the form ad (e.g., a user associated with theadvertiser server may have created the form ad) and may determine anappropriate landing page associated with the submitted user information.For example, the landing page may include a webpage and/or applicationthat includes information that matches at least a portion of thesubmitted user information. For example, if the form ad solicited forinformation associated with a user's current location and interest intaking out a mortgage and the user submitted a Michigan state zip code,then the landing page may display potential interest rates on mortgagesoffered by a bank in Michigan. In some embodiments, the advertiserserver is configured to send content associated with the determinedlanding page to client device 102 such that a web browser installed atdevice client 102 may present the determined landing page to the user(in a new window). In some embodiments, the advertiser server may trackthe user's activities (e.g., whether the user performed a transaction)at the landing page or the website associated with the landing page andmay transmit some of such information back to form ad server 106. Insome embodiments, form ad server 106 may use the received informationassociated with the user's activities at the landing page (or a websitethereof) to update one or more models it uses to select an appropriateform ad.

In some embodiments, video ad server 110, content delivery network 108,and form ad server 106 may be implemented across one or more servers andalso operated by one or more parties.

FIG. 2 is a flow diagram showing an embodiment of a process for creatinga form ad. In some embodiments, process 200 may be implemented at system100 of FIG. 1.

At 202, an indication to create a form ad to be displayed with a videois received. In some embodiments, an indication can be associated with aselection at a user interface for the creation and configuration of formads.

At 204, one or more configurations associated with the form ad arereceived via a user interface. In some embodiments, the user interfacepresents a user (e.g., an advertiser and/or buyer user) with options tocreate various configurations to be associated with the form ad, such asfor example, one or more of the following: create the appearance of aform ad (e.g., to be associated with a particular ad campaign and aparticular ad group associated with that ad campaign), configure thepublishers (e.g., online video platforms) with which the created form adis to be displayed, configure one or more keywords to be associated withthe form ad, configure one or more domains (e.g., websites) to beassociated with the form ad, configure one or more categories to beassociated with the form ad, configure one or more manners in which theform ad is to be displayed and in which manner based on whichconditions, configure the criteria required for user information inputat the form ad to be classified as a lead, configure target userdemographics the form ad is intended for, configure the specific videosand/or categories of videos that the form ad is intended for, configurehow much the advertiser and/or buyer user is willing to be charged for alead associated with the form ad, configure the budget to be used for anad campaign associated with the form ad, configure one or more purchasecriteria for a lead, configure mappings between fields of the form adsand variables used by another system used by the advertiser and/or buyeruser, and configure whether a pixel is to be included in the form totrack uses and/or performance of the form ad.

At 206, the form ad is created based at least in part on the receivedone or more configurations.

At 208, the form ad is stored. In some embodiments, the created form adis stored with at least some of the user configurations generated at theuser interface. In some embodiments, at least some of the configurationsassociated with a form ad are also referred to as metadata associatedwith the form ad.

FIG. 3 is a flow diagram showing an embodiment of a process for servingform ads with a video. In some embodiments, process 300 is implementedat system 100 of FIG. 1.

At 302, a request including a set of parameters associated with a videois received from a client device. The client device includes a webbrowser application or other type of application that is used to view avideo provided by an online video platform. For example, the video isdownloaded or streamed by a video player application at a webpage and/orapplication associated with the online video platform. In someembodiments, various parameters associated with the user who hasselected to view the video, parameters associated with the video itself,parameters associated with the video player, and/or parametersassociated with the client device are collected by the video player (oranother application that is installed at the client device). Forexample, parameters associated with the user may include informationstored by the web browser (and/or client device) such as the user'sgeographic location, the user's birthday, the user's gender, and theuser's interactions with the video and/or the webpage associated withthe video and/or application associated with the video. Examples of theuser's interaction include where the user places the cursor on thewebpage associated with the video and/or application associated with thevideo, how the user controls the playback of the video (e.g., whetherthe user rewind to certain portions of the video or whether the userskip ahead without watching all of the video), and how the userinteracts with displayed ads at the webpage associated with the video(e.g., does the user engage with other ads that have been displayed ordoes the user dismiss the other ads?). For example, parametersassociated with the video may include metadata associated with the video(e.g., keywords, tags, user comments, categories, and/or other usergenerated content), the context associated with the video (e.g., thedimensions of the video, the website at which the video is beingplayed). Examples of parameters associated with the client deviceinclude the version/type of the web browser application that is used andthe version/type of the operating system that is used at the clientdevice.

In some embodiments, the video player (and/or other application)collects parameters until it receives an indication associated with aplayback event that is configured to trigger the transmission theparameters collected so far.

At 304, a form ad to be displayed with the video is determined based atleast in part on the set of parameters. The set of parameters isanalyzed to determine which form ad to display with the video. In someembodiments, a preliminary determination is made as to whether a form adis to be displayed at all based on the set of parameters. For example,if no form ad can be found to match the parameters included in the set,then a message indicating that no form ad is to be displayed is returnedto the client device and no form ad will be displayed. In anotherexample, if the set of parameters indicates that the user has dismissedevery ad so far that was shown to the user at the webpage associatedwith the video and/or application associated with the video, then it maybe presumed that the user will not choose to interact with the form adand so a message indicating that no form ad is to be displayed isreturned to the client device and no form ad will be displayed. If thepreliminary determination indicates that a form ad is to be served, thanan appropriate form ad is determined based on the set of parameters andsent to the client device. The client device may display the form ad ina manner that overlays at least a portion of the video or video playeror at another location on the webpage and/or application associated withthe video. A user may complete the fields and/or selections included inthe form ad and select a control associated with submitting the userinformation. For example, the questions/fields/selections in the form admay solicit the user for personally identifiable information and/or theuser's feedback for the video.

FIG. 4 is a sequence diagram showing an example of serving form ads witha video. In some embodiments, the example of FIG. 4 is implemented withsystem 100 of FIG. 1. At 402, a video that has been selected by a userto view is being played back at a video player application. For example,the video player application is associated with a webpage of theselected video and the webpage is being viewed using a web browserapplication executing at a client device such as client device 102 ofFIG. 1. In another example, the video player application is associatedwith a mobile device optimized software application executing at aclient device such as client device 102 of FIG. 1. In some embodiments,prior to, during, and subsequent to the playback of the video,parameters such as data associated with the video, data associated withthe client device, data associated with the video player, dataassociated with the user interaction with the video, and/or dataassociated with the geographic location of the user are being collectedby the video player (or another application). For example, the set ofparameters may include the type of the form ad that is requested, theamount of the video played back so far, and a geographic area at whichthe client device is predicted to be located. At 404, the video playersends a request for a form ad to a video ad server such as video adserver 110 of FIG. 1. For example, the video player sends the requestfor a form ad in response to detecting a playback event that isconfigured to trigger the transmission of the request. The playbackevent may be a user selection of the pause control at the video player.The request for the form ad includes the set of parameters collected sofar. The video ad server uses at least a subset of the set of parametersincluded in the request to select an appropriate form ad to be displayedwith the video. At 406, the video ad server returns a URL that isconfigured to be used to locate the form ad to the video player. Afterreceiving the URL associated with the selected form ad, at 408, thevideo player is configured to send a request for the data associatedwith the selected form ad from a content delivery network such ascontent delivery network 108 of FIG. 1. The request for the dataassociated with the selected form ad includes the URL returned by thevideo ad server. At 410, the content delivery network returns the dataassociated with the selected form ad to the video player. For example,the data associated with the form ad comprises the data that the clientdevice is configured to use to display the form ad. At 412, the form adis displayed with the video. For example, the form ad is displayed overat least a portion of the video or video player and/or in an ad unit ofthe webpage and/or application associated with the video. The user maycomplete the fields and/or selections of the form ad (while the videoremains paused). At 414, the user information (a lead) is submitted to aform ad server such as form ad server 106 (in response to a userselection of the submit button associated with the form ad). At 416, thelead may be sold to an advertiser in the event that the lead meets thepurchase criteria associated with the advertiser. As will be furtherdescribed below, prior to submitting the lead to the advertiser, theform ad server validates and/or verifies the user information includedin the lead to confirm that the user information meets the criteriaassociated with qualifying as a lead that can be submitted to theadvertiser (or another buyer). At 418, the playback of the video isresumed (in response to a user selection to resume the paused video).The form ad may remain displayed until the user dismisses it (byselecting an icon associated with closing the form ad).

FIG. 5 is a flow diagram showing an embodiment of a process for servingform ads with a video. In some embodiments, process 500 is performed atsystem 100 of FIG. 1. For example, process 500 is performed by one ormore of video ad server 110, content delivery network 108, and form adserver 106 of system 100.

At 502, a request for a form ad is received, wherein the requestincludes a set of parameters associated with a video. In someembodiments, the request for a form ad is generated and sent by a videoplayer application and/or another application that resides at the clientdevice. The set of parameters includes data associated with the video,data associated with the client device, data associated with the videoplayer, data associated with the user interaction with the video, and/ordata associated with the geographic location of the user, for example.

At 504, a form ad to be displayed with the video is determined based atleast in part on the set of parameters. In some embodiments, theappropriate form ad is determined for the request based on determininguser intent based on the set of parameters and determining a bestmatching form ad based on the metadata associated with the form ads. Insome embodiments, the appropriate form ad is determined for the requestbased on categorizing the viewing user into a user demographic anddetermining a best matching form ad for that user demographic. In someembodiments, the appropriate form ad is determined for the request basedon selecting a form ad that is currently popular. In some embodiments,the appropriate form ad is determined for the request based ondetermining a category associated with the video and selecting a form adthat is associated with that category of videos. In some embodiments,the appropriate form ad is determined for the request based ondetermining a tag word or keyword associated with the video andselecting a form ad that is associated with the same or similar tag wordor keyword.

At 506, data associated with the form ad is sent to the client device.In some embodiments, the determined form ad is sent directly to theclient device. In some embodiments, identifying information that may beused by the client device to locate the determined form ad is sent tothe client device.

At 508, user information associated with the form ad is received fromthe client device. After the client device obtained and displayed theobtained form ad with the video, the viewing user may input userinformation through the form ad.

At 510, validation and/or verification are performed on the userinformation. The input user information is validated (e.g., the userinformation is checked for whether it is in the correct format) and/oralso verified (e.g., the user information is checked for whether it canbe verified by a third party verification service) prior to beingclassified as a lead that is eligible to be sold to a potential buyer(e.g., an advertiser). Validation and verification are performed toensure that only quality and truthful user information is sold topotential buyers.

FIG. 6 is a flow diagram showing an embodiment of a process of servingform ads with a video. In some embodiments, process 600 is performed atsystem 100 of FIG. 1. For example, process 600 is performed by one ormore of video ad server 110, content delivery network 108, and form adserver 106 of system 100.

Process 600 is similar to process 500 of FIG. 5 except with theadditional preliminary determination of whether a form ad should or canbe served at all. As will be described below, if it is determined that aform ad will not be served, then a message indicating that no form ad isto be displayed is returned to the client device and the client devicewill understand that a form ad will not be served with the video.However, if it is determined that a form ad will be served, then thedetermination of the appropriate form ad and the validation and/orverification of the input user information may be performed usingtechniques similar to those described for process 500 of FIG. 5.

At 602, a request for a form ad is received, wherein the requestincludes a set of parameters associated with a video.

At 604, it is determined whether a form ad is to be served. In somescenarios, it is determined to not serve a form ad because the viewinguser is unlikely to interact with the form ad. For example, if it isdetermined that the user interaction included in the received set ofparameters indicates that the user has not been engaging with the adspresented with the video so far (e.g., the user has dismissed every adthat has been presented with the video so far), then it is presumed thatthe user would not interact with the form ad and a form ad is determinednot to be served. In a specific example, a threshold can be set withrespect to the detected user interaction such that if the userinteraction does not exceed a threshold of activity that is associatedwith potential interest in interacting with a form ad, then a form ad isdetermined not to be served. The threshold may be that if the userdismisses at least 50% of the other ads that have been shown for theuser, then a form ad is determined not to be served. In another example,if no matching form ad can be determined for the set of parameters, thena form ad is determined not to be served.

In the event that a form ad is not determined to be served, controlpasses to 606. In the event that a form ad is determined to be served,control passes to 608.

At 606, a message indicating that no form ad is to be displayed isreturned to the client device. Due to the determination to not serve aform ad, a message indicating that no form ad is to be displayed is sentto the client device so that the client device is notified that a formad will not be presented. As such, the process ends.

At 608, a form ad to be displayed with the video is determined based atleast in part on the set of parameters.

At 610, data associated with the form ad is sent to the client device.

At 612, user information associated with the form ad is received fromthe client device.

At 614, validation and/or verification are performed on the userinformation.

FIG. 7 is a flow diagram showing an embodiment of a process for servingform ads with a video. In some embodiments, process 700 is performed atsystem 100 of FIG. 1. For example, process 700 is performed by clientdevice 102 of system 100.

At 702, a set of parameters associated with a video is collected. Insome embodiments, a video player application and/or another application(e.g., the web browser application) that resides on the client devicecollects the set of parameters prior to, during, and/or subsequent tothe playback of the video.

At 704, it is determined whether a playback event associated withtransmitting of the set of parameters is detected. In the event that theplayback event is detected, control passes to 704. Otherwise, controlreturns to 702. For example, certain playback events may be configuredto trigger the transmission of the request for a form ad. Examples ofsuch playback events include a user selection to pause the playback ofthe video and/or the completion of the video playback. However, if sucha playback event is not detected, then control returns to 702 and moreparameters are collected.

At 706, a request for a form ad is sent, wherein the request includesthe set of parameters. The request for the form ad includes the set ofparameters collected so far (up until the detection of the playbackevent). In some embodiments, the request for the form ad is sent to avideo ad server.

At 708, it is determined whether identifying information associated witha selected form ad is received. In the event that identifyinginformation associated with a form ad is received, then control proceedsto 710. For example, the identifying information may include a URL oranother piece of identifying information that can be used to identifythe selected form ad. Otherwise, in the event that identifyinginformation associated with a form ad is not received but a messageindicating that no form ad is to be displayed is received instead, thena form ad will not be displayed and the process ends.

At 710, the form ad is obtained based at least in part on theidentifying information. Obtaining the form ad includes querying acontent delivery network (or another type of storage for form ads) forthe form ad based on the received identifying information.

At 712, the form ad is displayed. In various embodiments, the form ad isdisplayed as an overlay over at least a portion of the video or videoplayer. In some embodiments, the form ad is displayed at another area atthe webpage and/or application associated with the video that is notover a portion of the video. In the event that the detected playbackevent at 704 was a user selection to pause the video, the form ad mayremain displayed until a user selection to resume the video is receivedor a user selection to dismiss the form ad is received. In the eventthat the detected playback event at 704 was the completion of the videoplayback, the form ad may remain displayed until a user selection todismiss the form ad is received.

FIG. 8 is a flow diagram showing an embodiment of a process forcollecting user interaction events. In some embodiments, process 800 isimplemented at system 100 of FIG. 1. For example, process 800 isimplemented at client device 102 of system 100.

Process 800 illustrates an example of collecting user interactionevents, which are parameters to be included in the set to be sent with arequest for a form ad, at the client device. A user interaction eventmay comprise any interaction that the user has with respect to thewebpage and/or application associated with the video, any selectableelements that are displayed at the webpage and/or application associatedwith the video (e.g., companion video ads, overlaying video ads, bannerads), the video player, and/or the video playback. Examples of a userinteraction event is a user selection of a displayed ad at the webpageand/or application associated with the video, a user dismissal of adisplayed ad at the webpage and/or application associated with thevideo, a user selection of a playback control button associated with thevideo player, a user submission of feedback (e.g., a user comment, areview of the video) associated with the video, and a cursor movement toa different area of the video and/or the webpage and/or applicationassociated with the video. As described above, in some embodiments,parameters such as user interaction events may be used in determiningwhether a form ad will be served with a video at all and if it isdetermined that a form ad is determined to be served, which form ad toserve.

At 802, it is determined whether a user interaction event is detected.In the event that a user interaction event is detected, control passesto 804. Otherwise, control passes to 806. In some embodiments, the userinteraction event is detected by the video player application, the webbrowser application, and/or another application installed at the clientdevice. At 804, data associated with the detected user interaction eventis included in a set of parameters. After 804, process 800 begins again.At 806, it is determined whether to stop collecting parameters. Thecollection of parameters may be stopped if a playback event that isassociated with sending a request for a form ad is detected. In theevent that it is determined that the collection of parameters shouldstopped, then control passes to 808. For example, if the most recentlydetected user interaction event is a user selection to pause the videoplayback, then that playback event may trigger the sending of the set ofparameters. In another example, if it is detected that the videoplayback has reached the end of the video, then that playback event maytrigger the sending of the set of parameters. At 808, a request for aform ad is sent, wherein the request includes the set of parameters. Theset of parameters that have been collected so far is sent with therequest for a form ad.

In some scenarios, after 808, more parameters may be collected andincluded in a subsequent request for a form ad. For example, if at 806,it is determined to stop collecting parameters because a user selectionto pause the video playback has been received, then after the userresumes the playback of the video, process 800 may begin again, wherenew user interaction events may be added to the set collected prior tothe user selection to pause the video. As such, when 808 is reachedagain, an updated set of parameters may be sent and used to select adifferent form ad to be displayed with the video.

FIG. 9A is a diagram showing an example of a video playing in a videoplayer application. For example, the video player application may beembedded in an application associated with the online video platform orat a webpage associated with the online video platform. In the example,the online video platform is called “VideoSite.” The video may be playedback on a computer or on a mobile device. The example shows video playerapplication 902 playing a video titled “Jimmy Yallon—Comedy CenterStand-Up Special.” Player controls 906 represent a user interface wherethe viewing user may view the current progress of the video (2:30/5:43minutes) and select different icons (e.g., the pause icon and the soundicon) to adjust the playback of the video. The user may interact withthe video and/or other elements associated with the webpage/applicationusing a cursor (not shown) or by using an input tool (e.g., a humanfinger, a stylus) on the screen associated with the client device. Theuser's interactions with the video and/or webpage/application may berecorded by video player application 902 and sent with a set ofparameters to a video ad server when a certain playback event that isconfigured to trigger the transmission is detected. One such playbackevent is a user selection to pause the video. In the example, assumethat the user selects the pause icon in player controls 906 two minutesand 30 seconds into the video playback. Thus, in response to the user'sselection to pause the video, a collected set of parameters (e.g.,including recorded user interactions with the video and/orwebpage/application up until two minutes and 30 seconds into the videoplayback) is sent to the video ad server with a request for a form ad.

FIG. 9B is a diagram showing an example of a form ad being displayedover a video in a video player application. The example of thepresentation of form ad 952 in FIG. 9B may be made in response to theuser selection to pause the video as described with FIG. 9A. Asindicated by the appearance of the play icon in player controls 956, thevideo is currently paused. As described above, in response to the userselection to pause the video, the collected set of parameters was sentalong with a request for a form ad by the client device to a video adserver. For example, the set of parameters includes keywords associatedwith the video such as “Jimmy Yallon” and “Comedy Center”; the categoryof comedy; information indicating the client device is a desktopcomputer; information indicating that the viewing user had interactedwith a video ad that was played before the Jimmy Yallon video started,and information associated with the user indicating that the viewinguser is male user who is 27 years old. Based on the set of the set ofparameters, the video ad server determined that a form ad was to beserved and sent back to the client device. In the example, the form adselected to be displayed with the video is form ad 952. As shown in theexample, form ad 952 is displayed over the “Jimmy Yallon—Comedy CenterStand-Up Special” video in the video player application. In the example,form ad 952 may have been selected based on at least some of theinformation included in the set of parameters. For example, form ad 952is stored with metadata such as the target user demographic being maleand aged 25-40; the keywords such as “Jimmy Yallon” and “Comedy Center”;and that characteristic that the form ad is to be optimized for desktopor laptop computers. The video ad server may select to serve form ad 952from a candidate group of form ads (e.g., that are associated with thecategory of comedy) based on determining that the set of parameters bestmatches the metadata associated with form ad 952 of any other candidateform ad. Form ad 952 invites the user to input his current zip code andemail address so that the user may receive email alerts when a JimmyYallon show is to take place in a location near the zip code provided inthe form ad. To submit the entered user information (zip code andemail), the user is to select the “Submit” button displayed in form ad952. In some embodiments, prior to classifying the submitted userinformation as a lead, the user information is validated and/or verifiedand only if the user information meets the validation and/orverification criteria, is the user information classified as a lead andpotentially sold to a buyer. In some embodiments, after the userinformation is submitted, a landing page associated with the form ad isopen (e.g., in a new window) in a web browser application. In theexample, the landing page that could be opened may include a list oftour dates and locations for the comedian Jimmy Yallon that are near thezip code provided in the submitted user information.

Form ad 952 may remain displayed at the webpage and/or applicationassociated with the video until the user selects the dismiss icon “X”located on the top right hand corner of the ad or until the user selectsto resume video playback by selecting the play icon within playercontrols 956. Displaying the form ad over the video while the video ispaused (or completed) provides the user the opportunity to see the formad and also to complete the form ad without distraction to the user'sexperience of viewing of the video.

While the example shows a form ad being served while a playback of avideo is paused, a form ad may additionally or alternatively be servedat the completion of a video playback.

FIG. 10 is a flow diagram showing an embodiment of a process forcollecting user information using a form ad displayed with a video. Insome embodiments, process 1000 may be implemented at system 100 ofFIG. 1. For example, process 1000 is implemented by form ad server 106of FIG. 1. In some embodiments, 612 and 614 of process 600 may beimplemented, at least in part, by process 1000.

At 1002, user information input into a form ad associated with a videois received. In some embodiments, the form ad is included in a webpageand/or application associated with the video. In some embodiments, theform ad is included in a mobile device optimized software applicationassociated with playing videos. User information may be input by a user(e.g., the user who is viewing the video) into the one or more fieldsand/or other selections included in the form ad. For example, userinformation may include values, selections (e.g., of menu items), and/oralphanumeric characters.

At 1004, it is determined whether the user information meets criteria tobe classified as a lead. In some embodiments, the user information maybe checked to determine whether it meets the criteria that are requiredfor user information to be classified as a lead. In some embodiments,the criteria may comprise rules for one or both of validation andverification of the user information. In some embodiments, the criteriathat are required for user information received through a form ad to beclassified as a lead are determined from the set of metadata stored forthe form ad.

At 1006, a response acknowledging receipt of the user information issent. In some embodiments, a response acknowledging receipt is sent inresponse to a selection to submit the user information (e.g., toindicate the completion of inputting user information). In someembodiments, the response is sent regardless of whether the userinformation has been determined to meet the criteria to be classified asa lead. In some embodiments, the response may include a message to bedynamically presented at the webpage and/or application associated withthe video in the ad unit at which the form ad was displayed (e.g., aregion of the webpage/application interface originally associated withthe form ad). In some embodiments, the response may include a directionto a landing page presented at a new window different than the webpageand/or application associated with the video.

At 1008, a lead associated with the user information is stored based atleast in part on the determination of whether the user information meetsthe criteria. In some embodiments, validation is performed on the userinformation based on the rules included in the criteria that arerequired for user information received through a form ad to beclassified as a lead. In some embodiments, only user information that issuccessfully validated is then verified. In some embodiments, if theuser information cannot be successfully validated, a prompt is sent toinvite the user to resubmit information. In some embodiments, if theuser information cannot be successfully validated (e.g., over athreshold count of user information resubmissions), then the userinformation is not verified nor stored as a lead. In some embodiments,once the user information is successfully validated, it proceeds to theverification process. In some embodiments, verification of the userinformation is performed at least in part by a third party. In someembodiments, if the user information cannot be successfully verified(e.g., based on a verification result message received from the thirdparty verification service), a prompt is sent to invite the user toresubmit information. In some embodiments, if the user informationcannot be successfully verified (e.g., over a threshold count of userinformation resubmissions), then the user information is not stored as alead. In some embodiments, if the user information is both successfullyvalidated and successfully verified, then the user information is storedas a lead. In some embodiments, periodically, a stored lead is comparedagainst one or more sets of purchase criteria associated with buyers andleads that match the purchase criteria of a buyer may be sold (e.g.,billed) to that buyer.

FIG. 11 is a flow diagram showing an example of a process for performingvalidation and verification on the received user information input intoa form ad displayed with a video. In some embodiments, process 1100 isimplemented at system 100 of FIG. 1. In some embodiments, process 1000of FIG. 10 is implemented, at least in part, using process 1100.

At 1102, user information is received. The user information is inputinto fields and/or selections of a form ad displayed with a video. At1104, it is determined whether the validation is successful. In someembodiments, validation (e.g., checking the user information based onrules for appropriate format and/or type) is performed on the userinformation. In some embodiments, validation may begin to be performedon the user information received so far in response to a trigger event.For example, trigger events may include the user's cursors moving awayfrom a field of the form ad, the user's completion of a field orselection of the form ad, or the user's selection of the submissionbutton of the form ad. In the event the validation was not successful, acount associated with the number of failed validations/verifications isincremented by one and control passes to 1106. At 1106, it is determinedwhether the updated count has exceeded a predetermined attemptthreshold. For example, the attempt threshold may be included in rulesfor validation and verification stored for the form ad with the criteriathat are required for user information received through a form ad to beclassified as a lead. In the event that the attempt threshold is notexceeded, then control passes to 1108. At 1108, a prompt forresubmission of information is presented to the user. In someembodiments, the prompt is associated with fields whose inputinformation need to be resubmitted (e.g., because the previouslysubmitted information cannot be successfully validated). After 1108,control returns to 1102. In the event that the attempt threshold of 1106is exceeded, then process 1100 ends and the user information is notstored as a lead. In the event the validation was successful at 1104,control passes to 1110. At 1110, it is determined whether the userinformation can be successfully verified. In some embodiments, the userinformation may be verified using a third party verification service. Inthe event that verification was not successful, a count associated withthe number of failed validations/verifications is incremented by one andcontrol passes to 1106. In the event the verification was successful at1110, control passes to 1112. At 1112, the set of user information isstored as a lead. In some embodiments, if an acknowledgement message hasnot already been sent to the user, the acknowledgement message is sentto the user once the user information is stored as a lead. At 1114, abuyer associated with purchase criteria of the lead that are met isbilled.

FIG. 12 is a flow diagram showing an example of a process for performingvalidation and verification on the received user information input intoa form ad displayed with a video. In some embodiments, process 1200 isimplemented at system 100 of FIG. 1. In some embodiments, process 1000of FIG. 1 is implemented, at least in part, using process 1200.

Process 1200 is similar to process 1100 except that process 1200includes a timeout period associated with waiting to receive results ofthe verification process (e.g., that may be performed by a third partyverification service) such that if the verification process takes toolong (i.e., beyond the timeout period), then an acknowledgement message(e.g., a message indicating confirmation that the user information hasbeen received) can be sent to the user in a relatively timely mannereven though the verification process has not yet been completed.Furthermore, even after the acknowledgement message is sent, theverification result message may be waited on until such a message isreceived so that it can be used to determine whether the userinformation should be stored as a lead.

At 1202, user information is received. The user information is inputinto fields and/or selections of a form ad displayed with a video. At1208, it is determined whether the validation is successful. In theevent the validation was not successful, a count associated with thenumber of failed validations/verifications is incremented by one andcontrol passes to 1206. At 1206, it is determined whether the updatedcount has exceeded a predetermined attempt threshold. In the event thatthe attempt threshold is not exceeded, then control passes to 1204. At1204, a prompt for resubmission of information is presented to the user.After 1204, control returns to 1202. In the event that the attemptthreshold of 1206 is exceeded, process 1200 ends and the userinformation is not stored as a lead. In the event the validation wassuccessful at 1208, control passes to 1210. At 1210, a timeout period isstarted. In some embodiments, a timeout period is configured when averification process (e.g., in the set of metadata for the form ad) isstarted. In some embodiments, starting a verification process includessending the user information to one or more third party verificationservices. One reason for using a timeout period is because theverification process may take a nontrivial length of time because theone or more third party services that are performing the verificationprocess may need to compare the user information against a voluminousamount of data. So by using the timeout period, it can be determinedwhen an acknowledgement message is to be sent to the user regardless ofwhether the verification process has completed. At 1212, it isdetermined whether the timeout period is over (i.e., hascompleted/elapsed). In the event that the timeout period is not over,control passes to 1218. At 1218, it is determined whether the userinformation can be successfully verified. In some embodiments, whetherthe user information can be successfully verified is determined based ona verification results message sent from a third party verificationservice. If such a message has been received and it is determined thatthe user information cannot be successfully verified, then controlpasses to 1206. Otherwise, in the event that the user information can besuccessfully verified, control passes to 1222 and the user informationis stored as a lead. In some embodiments, if an acknowledgement messagehas not already been sent to the user, the acknowledgement message issent to the user once the user information is stored as a lead. Then at1224, a buyer associated with purchase criteria of the lead that are metis billed. Returning to 1212, in the event that the timeout period isover, control passes to 1214. At 1214, an acknowledgment message is sentto the user. At 1216, verification process is continued. In someembodiments, to continue the verification process includes waiting toreceive the verification results message sent from a third partyverification service despite having already sent the acknowledgementmessage. At 1220, it is determined whether the user information can besuccessfully verified (e.g., based on the verification results messagereceived from the third party verification service). In the event thatsuch a message has been received and it is determined that the userinformation cannot be successfully verified, then process 1200 ends anda prompt for resubmission is not sent because the acknowledgment messagehas already been sent. In the event that such a message has beenreceived and it is determined that the user information can besuccessfully verified, then control passes to 1222.

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, the invention is not limitedto the details provided. There are many alternative ways of implementingthe invention. The disclosed embodiments are illustrative and notrestrictive.

What is claimed is:
 1. (canceled)
 2. A system, comprising: a processorconfigured to: receive from a client device a request including a set ofparameters associated with a video; determine a form ad to be displayedwith the video based at least in part on the set of parameters; and senddata associated with the form ad to the client device; and a memorycoupled to the processor and configured to provide the processor withinstructions.
 3. The system of claim 2, wherein the set of parametersincludes one or more of the following: data associated with a userassociated with a selection to view the video, data associated with thevideo, data associated with the client device, data associated with avideo player associated with providing playback of the video, dataassociated with user interaction with the video, and/or data associatedwith a geographic location of the user.
 4. The system of claim 2,wherein at least a subset of the set of parameters is associated withbeing collected by a video player application.
 5. The system of claim 2,wherein the set of parameters includes one or more user interactionevents associated with the video.
 6. The system of claim 5, whereinprior to determine the form ad to be displayed with the video, theprocessor is further configured to determine that the form ad should bedisplayed based at least in part on the one or more user interactionevents.
 7. The system of claim 6, wherein the one or more userinteraction events include a user interaction event associated with anad displayed with the video.
 8. The system of claim 2, wherein todetermine the form ad includes to determine a user intent based at leastin part on the set of parameters and to determine a form ad that bestmatches the user intent based on metadata associated with that form ad.9. The system of claim 2, wherein to determine the form ad includes todetermine a user demographic associated with a user associated with aselection to view the video and to determine a form ad that isassociated with the user demographic.
 10. The system of claim 2, whereinto determine the form ad includes to determine a form ad that iscurrently popular.
 11. The system of claim 2, wherein the request isconfigured to be sent in response to detection of a playback eventassociated with the video.
 12. The system of claim 11, wherein theplayback event comprises a user selection to pause a playback of thevideo.
 13. The system of claim 11, wherein the playback event comprisesa completion of a playback of the video.
 14. The system of claim 2,wherein the processor is further configured to receive user informationinput into the form ad.
 15. The system of claim 15, wherein theprocessor is further configured to determine whether the userinformation meets criteria associated with at least one of validationand verification and in the event that the criteria are met, to classifythe user information as a lead.
 16. A method, comprising: receiving froma client device a request including a set of parameters associated witha video; determining, using a processor, a form ad to be displayed withthe video based at least in part on the set of parameters; and sendingdata associated with the form ad to the client device.
 17. The method ofclaim 16, wherein the request is configured to be sent in response todetection of a playback event associated with the video.
 18. The methodof claim 17, wherein the playback event comprises a user selection topause a playback of the video.
 19. The method of claim 17, wherein theplayback event comprises a completion of a playback of the video.
 20. Acomputer program product, the computer program product being embodied ina non-transitory computer readable storage medium and comprisingcomputer instructions for: receiving from a client device a requestincluding a set of parameters associated with a video; determining aform ad to be displayed with the video based at least in part on the setof parameters; and sending data associated with the form ad to theclient device.